home *** CD-ROM | disk | FTP | other *** search
-
-
- • Mannisman Tally printers with serial interface − Pin connections
- are: pins 1, 4 and 6 linked together on the Archimedes, pin 3 to pin 3
- on the printer, pin 5 to pin 7 on the printer and pin 8 to both pins 11
- and 19 on the printer.
- 2.2
- • SWI “XOS...” − If you are using SWI “XOS...” commands so that you
- can handle your own errors, it will fail if you try to return
- immediately after this command to the calling routine. A dummy instruc
- tion needs to be inserted before the LDMFD instruction. Presumably a
- ‘feature’ of OS 1.2.
- 2.2
- • Problems with *Memory and *MemoryI − If you try to use these two
- commands in the debugger with the aim of dumping to printer, you will
- find that codes above &7F are not weeded out − they are all sent to the
- printer regardless which can cause all sorts of problems. The following
- program patch will solve the problem.
- 2.2
- 10 REM> DEBUGPCH
- 2.2
- 20 REM (C) JW^2 4th OCTOBER 1988
- 2.2
- 30 DIM A% &270C
- 2.2
- 40 OSCLI“SAVE Debugged_D 38486A0
- 2.2
- +270C“
- 2.2
- 50 OSCLI“LOAD Debugged_D ”+STR$~A%
- 2.2
- 60 FOR F=0 TO 3 STEP 3
- 2.2
- 70 P%=A%+&2230
- 2.2
- 80 [
- 2.2
- 90 OPT F
- 2.2
- 100 STMDB R13!,{r0-r9 ,R14}
- 2.2
- 110 .LOOP
- 2.2
- 120 LDRB R0,[R9],#1
- 2.2
- 130 CMP R0,#&7F
- 2.2
- 140 MOVHS R0,#&2E
- 2.2
- 150 CMP R0,#&1F
- 2.2
- 160 MOVLS R0,#&2E
- 2.2
- 170 SWI “XOS_WriteC”
- 2.2
- 180 BVS (LOOP+&35D)
- 2.2
- 190 SUBS R2,R2,#1
- 2.2
- 200 BNE LOOP
- 2.2
- 210 ]
- 2.2
- 220 NEXT
- 2.2
- 230 OSCLI“SAVE Debugged_D ”+STR$~A%+
- 2.2
- “ +270C”
- 2.2
- 240 OSCLI“SETTYPE Debugged_D &FFA”
- 2.2
- • EDIT’s disappearing cursor − If you use ‘options’ (<shift-f3>), you
- can change to a non-flashing cursor which is visible all the time, and
- you don’t have to change it each time you switch on the machine because
- EDIT stores its options in cmos ram. (Anyone know if there’s a way to
- re-program it to change the colour of the cursor?)
- 2.2
- • Putting sound through the monitor − It is perfectly possible to put
- the sound output from the 3.5mm stereo jack socket on the Archimedes
- through the amplifiers and speaker(s) of both the standard Acorn colour
- monitor and also the Phillips CM8833. All you need is a piece of twin
- screened cable (though actually I used ordinary thin three core mains
- flex which is OK for such a short length) and a 3.5 mm stereo jack plug
- (RS Components 274−284, £1.19 for two). The SCART plug connections are
- that pin 2 is right audio, 4 is earth and 6 is left audio. The pins
- should be numbered, but if not, 2, 4 and 6 are the first three pins
- along the long edge of the plug starting from the rectangular end.
- 2.2
- Three possible problems: firstly, you may find that the SCART plug has
- no pins at positions 2, 4 and 6 in which case you will have to buy a new
- plug (Tandy N¼ 15−7030, £1.49 each) and re-wire the other connections.
- Secondly, you may find that your cable doesn’t fit through the space
- available for the cable entry in the SCART plug − in which case, some
- judicious hacking of the plastic is needed. Finally, if the SCART plug
- has got pins at 2, 4 and 6, you may not be able to get at them to solder
- onto them. The solution here is to push each of the three pins back out
- through the body of the plug, solder them then push them back in again.
- It sounds easy but it’s not − there are little barbs the stop the pins
- being pushed out so you have to try to manipulate these and push the
- pins out at the same time − OK if you have three hands!
- 2.2
- The result − If the kids want to play Orion at full volume, they can,
- but I can turn it back down to a sensible volume when I use the system.
- 2.2
- • Stereo Speakers − I recently followed the suggestion in Archive 1.2,
- page 7 and purchased the amplified speakers (Model 40-1259E) from a
- local Tandy store. Initially I also purchased a couple of mains adaptors
- to power each unit but I found that this caused a considerable mains hum
- through both speakers. Upon returning to the Tandy store, I was advised
- that hum was caused by the mains adaptors not being earthed and, rather
- than spending more money on earthed mains adaptors, I exchanged the
- original adaptors for re-chargeable batteries which seem to work fine −
- there are also fewer wires trailing around! Whilst the stereo effect is
- very good, there is a problem in that there is no volume control fitted
- to these speakers; the suggestion from one of the staff at Tandy was to
- wire in two of their “L-Pad Speaker Level Controls”. Have any other
- Archive readers tried this or come up with a different solution?
- 2.2
- I have found that by amending the *Configure SoundDefault middle
- parameter to a lower value than 7, the volume can be reduced, this does
- provide some measure of control of sound volume; these parameters can
- take a value of 0 to 7 with each unit corresponding to one eighth of the
- overall maximum volume (see PRM, page 537).
- 2.2
- • Monitor problems (with solutions!) − Fujitsu and MAG 14C − The
- problem began on the MAG with a distortion of the top few lines of the
- display when in a multisync mode. The nature of this problem suggested
- that the monitor took several scan lines to lock onto the composite sync
- signal fed to it from the Archimedes. It was decided to feed it with
- separate vertical (frame) and horizontal (line) sync signals, which
- necessitated having to alter the preset links 10 and 11 within the
- Archimedes. At present this involves cutting a track (Lk10) and
- inserting a link (Lk11), since these links are not brought out on the
- normal Molex type links. Having done this modification you need a
- *Configure Sync 0 to set ‘Vertical sync only’ instead of ‘Composite
- sync’ to the monitor, otherwise the display rolls (indicating lost frame
- sync). This then cured the screen distortion problem but because of the
- way Acorn have put Composite/Vertical sync on the green signal, it kills
- the green output. With much trepidation this problem was overcome by
- disabling Acorn’s implementation of this signal by cutting pin 2 of IC
- 4. The result is a perfect picture.
- 2.2
- The Fujitsu monitor problem was much simpler and cured far easier after
- the troubles with the MAG.
- 2.2
- Although the picture quality was very good, there was an excess of
- green, even though R39 had been removed (see Archive 1.3 p8) It was
- originally thought that some internal adjustment of the green gun was
- needed but, with the experience of MAG monitor (and having tried it on
- the modified sync signal from the green output) the link changes proved
- unnecessary as the monitor worked perfectly happily with composite sync.
- Again the result was a perfect picture.
- 2.2
- Anyone wanting further information on this modi-fication can either
- contact Reg Dalton on 0742 487992 (less technical/Evenings only) or
- Steve Bass (who did all the work) on 0742 708028 (Daytime) or 0742
- 886622 (Evenings).
- 2.2
- • Screen saving from the SCML Teletext adaptor − R L Jefferies has
- worked out how to dump screens from the SCML Teletext Adaptor. (Pressing
- the ‘S’ command option gives an error but SCML have not replied to his
- questions about that yet.) He has utilised Robin Newman’s mode 7 to mode
- 9 utility as supplied on program disc 1.10. He copied this into the
- library directory on the Teletext disc and then created a mode 7 to mode
- 9 screensave module using Neil Strong’s “Printkey screen dump” (issues
- 1.10 p 45 and 1.11 p 7). Two lines need altering in the source program:
- 2.2
- line 840 should be changed to cmp r0,#83 and line 920 should be equs
- “M7M9 screensave scr<file>”
- 2.2
- Note that you should *SETEVAL file XX before you load the “S” key module
- and before executing the Teletext module. One small niggle is that Robin
- Newman’s module returns with the cursor ON. Is there an easy way to get
- rid of this?
- 2.2
- • Bug in C − Karl Strickland writesÉ There appears to be a bug in the
- fgets() function in version 1.54A (latest public release) of ANSI C.
- Instead, use the function given below and declare it using
- 2.2
- char *xfgets (char*,int,FILE*);
- 2.2
- We have to use xfgets (as opposed to fgets) because the linker gets
- confused if it finds the same function declared twice.
- 2.2
- char* xfgets (char* a,int b,FILE *s)
- 2.2
- {2 .2
- int c,d;
- 2.2
- *a=NULL; /* Must include STDIO.H */
- 2.2
- for (c=0;c<b;c++) {2 .2
- d=fgetc(s);
- 2.2
- if (d==EOF)
- 2.2
- return NULL;
- 2.2
- else
- 2.2
- if (d==13)
- 2.2
- return a;
- 2.2
- else
- 2.2
- strncat(a,(char*)&d,1);
- 2.2
- }
- 2.2
- return a;
- 2.2
- }
- 2.2
- • A hint for Twin from Bj¿rn Fl¿tten − When using Twin to edit large
- BASIC programs you can easily run out of memory. (Twin complains by
- hanging up the computer when called.) This is because of the inconveni
- ent way Twin is called from BASIC. Because Twin works on ASCII files,
- BASIC has to expand the current program from tokenised form to ASCII.
- This copy is placed on top of the BASIC program and is maybe 20-30%
- larger than the original. Then Twin is called and makes a new copy of
- the program which it places on top of itself. This means that an
- unnecessary lot of memory is used.
- 2.2
- One solution is to let Twin run from the address of PAGE. This works
- because Twin is not loaded into memory before the BASIC program is
- expanded. However, you will have to ensure that the BASIC program is
- bigger than Twin, if not, Twin will be loaded over the expanded version
- of your program.
- 2.2
- (This unfortunately makes the problem of Twin not releasing some vectors
- worse. This means that these vectors will point into the middle of your
- BASIC program after exiting from Twin. Use reset after exiting to BASIC
- and then OLD, to cure this.)
- 2.2
- • Problems with (Master) EDIT − If you get rubbish when you load up
- the EDIT ROM image from the BBC Master into the 6502 emulator, try
- loading it with:
- 2.2
- *65arthur
- 2.2
- *GO F800
- 2.2
- *EDIT
- 2.2
- • From Arthur to BASIC − If you are in the Arthur supervisor and you
- type *Progname where Progname is a BASIC program, it will run the
- program and drop you back out into the supervisor (equivalent to *BASIC
- −chain Progname). However, if you *LOAD Progname, it switches to BASIC,
- loads the program and gives you back control with a ‘>’ prompt −
- equivalent to *BASIC −load Progname but shorter to type and certainly
- easier than *BASIC followed by LOAD “Progname”. If you do a *SHOW, you
- will see the filetype definitions which make sense of it all.
- 2.2
- • Sprites and Sprite Commands − Paul White-horn writesÉ The Sprite
- Editor on the Welcome disc does not work properly being unable to create
- masked sprites (those with a transparent back-ground) or to save shades
- of colour that have been set up in the various edit modes. For many
- board style games this is not an insuperable difficulty and for chess
- and checkers, mode 1 creates reasonably detailed sprites in red, yellow,
- black and white.
- 2.2
- The simplest way of getting your own sprites from the Welcome disc onto
- your game or program disc is to *SNEW to wipe out anything that can be
- called a sprite in RAM, *SLOAD (by name or number) your sprite or sprite
- file into the machine from the Welcome disc (you don’t need to be in the
- Sprite Editor to do this), take out the Welcome disc, insert your game
- disc, *MOUNT it and *SSAVE (name) the contents of the machine’s RAM.
- Whatever sprites you have in RAM at this point will all go into a file
- created and named by the *SSAVE command and will be placed on your own
- disc.
- 2.2
- To check that they are all safely installed on your game disc *SNEW
- again (to clear RAM) and *SLOAD (name) the sprite(s) you have just
- *SSAVE’d on your disc. Now typing *SLIST will bring up a list of ALL the
- sprites in RAM which should correspond to the ones you have just
- transferred from the Welcome disc. At this point you can rename the
- sprites you see listed before you but the syntax for the *SRENAME
- command is not as it appears in the User Guide. Type *SRENAME (oldname)
- (newname) without commas or other punctuation marks separating the two
- names and without any quote marks round the names. This renames sprites
- in RAM and if you want these new names preserved on your disc then they
- must be *SSAVE’d collectively back to disc and you can save them with a
- different file name if you wish.
- 2.2
- *SDELETE (name) deletes a sprite in RAM whereas *DELETE (name) deletes a
- sprite (or file of sprites) on disc. Having weeded out sprites you don’t
- require with *SDELETE it is best to *SSAVE those you do need (possibly
- with a new file name) and *SNEW to clear RAM before proceeding further.
- This way you will not have rogue sprites lurking in RAM or in files on
- your disc where they may be called by default if they have the same name
- or number as the new ones.
- 2.2
- To create files of sprites from different sources you can use *SMERGE
- which merges a sprite (or file of same) from disc with those already
- installed in RAM. Those coming from disc have priority so if you have
- two sprites with the same name or number, the one on the disc will
- overpower its namesake in RAM. This command seems a little haphazard on
- my 310 especially with sprites which are numbered and occasionally
- several tries are needed to make it happen as required.
- 2.2
- If you intend to choose sprites during the course of your game as a
- consequence of numerical operations then it is necessary to use numbers
- as names so that they can be called with the VDU command. The VDU call
- takes variables with a range between 0 and 255 so make sure your sprites
- don’t exceed this range.
- 2.2
- *SINFO prints the size of the sprite workspace and *SCOPY (oldname)
- (newname) copies the named sprite. *SGET picks up a portion of the
- screen as a sprite but for details of this see the User Guide.
- 2.2
- • EMR SoundSynth + CC ROM podule − There has been a problem of a clash
- between EMR’s SoundSynth and Computer Concepts’ ROM/RAM podule in that
- after using SoundSynth, the contents of the RAM filing system disap
- peared! (Fortunately, I had a recent backup!) EMR have been looking into
- the problem and have sorted it out. If you have had the same problem,
- return your disc to EMR and they will replace it “in most cases, free of
- charge”.
- 2.2
- • Loading palette files − Here is a simple BASIC program to load a
- “!Palette” file and set the palette up. The file format really is
- simple: 3 bytes are stored for each colour − red, green and blue
- respectively. This group of 3 bytes is repeated for all 20 colours saved
- − logical colours 0-15, the border, and mouse colours 1-3.
- 2.2
- 10 REM >TestPal
- 2.2
- 20 REM ===> To demonstrate reading a
- 2.2
- 30 REM ===> Desktop !Palette file
- 2.2
- 40 REM By John Smith, September 1988
- 2.2
- 50 REM
- 2.2
- 60 MODE 12 :REM Any 16-colour mode
- 2.2
- will do.
- 2.2
- 70 :
- 2.2
- 80 REM Put all 16 colours on screen,
- 2.2
- and a 2-colour mouse pointer.
- 2.2
- 90 FOR x%=0 TO 15
- 2.2
- 100 GCOL x%
- 2.2
- 110 RECTANGLE FILL x%*80,0,80,1023
- 2.2
- 120 NEXT
- 2.2
- 130 MOUSE ON
- 2.2
- 140 *POINTER 1
- 2.2
- 150 PRINTTAB(0,0);“Now press a key to
- 2.2
- load the ‘!Palette’ file“
- 2.2
- 160 dummy=GET
- 2.2
- 170 :
- 2.2
- 180 REM Now load the palette file.
- 2.2
- 190 handle%=OPENIN “!Palette”
- 2.2
- 200 REM Do “standard” colours first.
- 2.2
- 210 FOR loop%=0 TO 15
- 2.2
- 220 COLOUR loop%, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 230 NEXT
- 2.2
- 240 :
- 2.2
- 250 REM Screen Border
- 2.2
- 260 VDU 19,0,24, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 270 :
- 2.2
- 280 REM Mouse colour 1
- 2.2
- 290 MOUSE COLOUR 1, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 300 MOUSE COLOUR 2, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 310 MOUSE COLOUR 3, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 320 CLOSE#handle%
- 2.2
- • InterWord to ArcWriter − if you have InterWord files from BBC days
- and want to transfer them to ArcWriter, look in the First Word Plus
- hints below where the transfer to FWP is achieved by transferring first
- to ArcWriter.
- 2.2
- • Double-precision to BBC BASIC − following on from the floating point
- BCD to BBC BASIC conversion program published in Archive 1.11, page 32,
- Carl Cepurneek has done a routine which converts from the more efficient
- Double-precision reals to BBC BASIC.
- 2.2
- 10 REM>Carl - FPU number conversion
- 2.2
- 20 REM BBC BASIC V to FPU memory
- 2.2
- 30 REM format conversions
- 2.2
- 40 REM Packed decimal print routine
- 2.2
- 50
- 2.2
- 60 REM Carl P.Cepurneek 26 Clyde St
- 2.2
- 70 REM Parkside, S.A.5063,Australia
- 2.2
- 100
- 2.2
- 110 DEFPROCcvt_s(bbc,adr) :REM from
- 2.2
- BBC real at |bbc to FP at adr
- 2.2
- 120 LOCAL exp%,sign%,mant%
- 2.2
- 130 !adr=0:adr!4=0 :REM clear
- 2.2
- 140 IF |bbc=0:!adr=0:ENDPROC
- 2.2
- 150 exp%=(bbc?4)-&80 :REM get
- 2.2
- adjusted exponent
- 2.2
- 160 IFexp%>0 exp%=exp%+126 ELSE exp%=
- 2.2
- 126-ABS(exp%)
- 2.2
- 170 !adr=!adr OR exp%<<23:REM set
- 2.2
- exponent bits
- 2.2
- 180 sign%=!bbc AND &80000000
- 2.2
- :REM isolate sign bit
- 2.2
- 190 !adr=!adr OR sign%:REM set sign bit
- 2.2
- 200 mant%=!bbc AND &7FFFFFFF :REM
- 2.2
- clear neg bit if set
- 2.2
- 210 !adr=!adr OR mant%>>>8:REM set
- 2.2
- mantissa
- 2.2
- 220 ENDPROC
- 2.2
- 230
- 2.2
- 240 DEFPROCcvt_d(bbc,adr):REM from
- 2.2
- real at address bbc
- 2.2
- 250 LOCAL exp%,sign%,mant%
- 2.2
- 260 !adr=0:adr!4=0
- 2.2
- 270 IF |bbc=0:!adr=0:ENDPROC
- 2.2
- 280 exp%=(bbc?4)-&80 :REM get
- 2.2
- adjusted bbc exponent
- 2.2
- 290 IF exp%>0 exp%=exp%+1022 ELSE exp%
- 2.2
- =1022-ABS(exp%)
- 2.2
- 300 !adr=!adr OR exp%<<20
- 2.2
- 310 sign%=!bbc AND &80000000
- 2.2
- :REM isolate sign bit
- 2.2
- 320 !adr=!adr OR sign%:REM set sign bit
- 2.2
- 330 mant%=!bbc AND &7FFFFFFF
- 2.2
- :REM clear sign bit set
- 2.2
- 340 !adr=!adr OR mant%>>>11 :REM set
- 2.2
- mantissa msbits
- 2.2
- 350 mant%=mant%<<21 :REM shift over
- 2.2
- low bits
- 2.2
- 360 adr!4=adr!4 OR mant% :REM set
- 2.2
- mantissa lsbits
- 2.2
- 370 ENDPROC
- 2.2
- 380
- 2.2
- 390 DEFPROCcvt_e(bbc,adr):REM from
- 2.2
- BBC real at |bbc
- 2.2
- 400 LOCAL exp%,sign%,mant%
- 2.2
- 410 !adr=0:adr!4=0:adr!8=0 :REM clear
- 2.2
- destination
- 2.2
- 420 IF |bbc=0:!adr=0:ENDPROC
- 2.2
- 430 exp%=(bbc?4)-&80 :REM get
- 2.2
- adjusted exponent
- 2.2
- 440 IFexp%>0 exp%=exp%+16382 ELSE
- 2.2
- exp%=16382-ABS(exp%)
- 2.2
- 450 !adr=!adr OR exp% :REM set
- 2.2
- exponent bits
- 2.2
- 460 sign%=!bbc AND &80000000
- 2.2
- :REM isolate sign bit
- 2.2
- 470 !adr=!adr OR sign%:REM set sign bit
- 2.2
- 480 mant%=!bbc OR &80000000 :REM set
- 2.2
- top bit (J)
- 2.2
- 490 adr!4=adr!4 OR mant% :REM set
- 2.2
- mantissa
- 2.2
- 500 ENDPROC
- 2.2
- 510
- 2.2
- 520 DEFFNprint_packed(base%)
- 2.2
- 530 LOCAL ms%,ms$,es%,es$,m%,s%
- 2.2
- 540 @%=&00001
- 2.2
- 550 m%=(!base% AND &80000000)>>>31
- 2.2
- 560 IF m%=0 ms$=“+” ELSE ms$=“-”
- 2.2
- 570 PRINT ms$;
- 2.2
- 580 m%=(!base% AND &F<<8) >>>8
- 2.2
- 590 PRINT m%;“.”;
- 2.2
- 600 FOR s%=4 TO 0 STEP -4
- 2.2
- 610 m%=(!base% AND &F<<s%) >>>s%
- 2.2
- 620 PRINT m%;
- 2.2
- 630 NEXT
- 2.2
- 640 FOR w%=4 TO 8 STEP 4
- 2.2
- 650 FOR s%=28 TO 0 STEP -4
- 2.2
- 660 m%=(w%!base% AND &F<<s%) >>>s%
- 2.2
- 670 PRINT m%;
- 2.2
- 680 NEXT
- 2.2
- 690 NEXT
- 2.2
- 700 e%=(!base% AND &40000000)>>>30
- 2.2
- 710 IF e%=0 es$=“+” ELSE es$=“-”
- 2.2
- 720 PRINT“ E”;es$;
- 2.2
- 730 FOR s%=24 TO 12 STEP -4
- 2.2
- 740 m%=(!base% AND &F<<s%) >>>s%
- 2.2
- 750 PRINT m%;
- 2.2
- 760 NEXT
- 2.2
- 770 =“”
- 2.2
- • Using 40-track drives − If you have a 40 track 5.25“ drive as used
- on PC clones, you can use it under the PC emulator but, in native
- Archimedes ADFS modes you will have problems. To get round it, format
- the disc as normal then, when it goes beyond “Formatting 40” and starts
- clicking as it reaches the end of the travel on the head movement, press
- <ctrl-break>. The disc is now formatted, but the free space map and
- catalogue have not been installed. This can be done with:
- 2.2
- DIM buffer% 3072
- 2.2
- SYS“ADFS_DiscOp”,,1,0,buffer%,3072
- 2.2
- SYS“ADFS_DiscOp”,,2,1,buffer%,3072
- 2.2
- You try this entirely at your own risk! Ed.
- 2.2
- • Problems with ON ERROR LOCAL − John Smith says he thinks he’s
- discovered a problem when using LOCAL ERROR with ON ERROR LOCAL. It
- occurs because ON ERROR LOCAL stores the exact position in the program
- structure. The User Guide mentions this with respect to REPEAT...UNTIL
- and WHILE...ENDWHILE loops, but it also seems to apply to IF..THEN...
- ELSE...ENDIF constructs. Once the error handler has done its job,
- processing must continue at the same part in the structure in which the
- original error happened. For example,
- 2.2
- 1000 DEF PROCtest(arg)
- 2.2
- 1010 LOCAL ERROR
- 2.2
- 1020 ON ERROR LOCAL PRINT “Can’t
- 2.2
- divide by zero − try again“
- 2.2
- 1030 IF arg < 100 THEN
- 2.2
- 1040 INPUT value
- 2.2
- 1050 PRINT arg/value
- 2.2
- 1060 ENDIF
- 2.2
- 1070 ENDPROC
- 2.2
- If a value of zero is input, line 1050 will error. As written, the above
- code will then print a warning message and effectively execute a “GOTO
- 1030”. At this point, the error handler stack is corrupted. The program
- may appear to work without problem, but if any future error should
- occur, the program may produce a run-time error something like “Attempt
- to exit from badly nested error handler” or something similar. Occasion
- ally, I have even managed to produce the dreaded “Address Exception
- error”!
- 2.2
- The solution to this problem is quite simple − place the code that could
- error together with the relevant error handler in a separate PROCedure.
- I have not (yet) had any problems doing this:
- 2.2
- 1000 DEF PROCtest(arg)
- 2.2
- 1030 IF arg < 100 THEN
- 2.2
- 1050 PROCprint(arg)
- 2.2
- 1060 ENDIF
- 2.2
- 1070 ENDPROC
- 2.2
- 2000 DEF PROCprint(arg)
- 2.2
- 2010 LOCAL ERROR
- 2.2
- 2020 ON ERROR LOCAL PRINT “Can’t
- 2.2
- divide by zero − try again“
- 2.2
- 2040 INPUT value
- 2.2
- 2050 PRINT arg/value
- 2.2
- 2060 ENDPROC
- 2.2
- First Word Plus Hints & Tips
- 2.2
- Here are a few of the many contributions we’ve been sent about First
- Word Plus. We’ve got a file of about ten other contributions, so we do
- need someone who knows FWP, has a reasonable skill at writing and has a
- bit of spare time to field the enquiries, assimilate the hints and tips
- and regurgitate something to us each month.
- 2.2
- • First Word Plus startup − If you are getting fed up of starting
- First Word Plus and finding yourself in lower case, you could *Configure
- Nocaps, but that is a nuisance if you do programming and want to start
- up in Shiftcaps. The solution is to extend the boot file, adding
- *FX202,48.
- 2.2
- • LQ850 with sheetfeeder − If you’re having problems with this
- combination, Acorn say that you should edit the printer driver so that
- entry 4 (vertical tab) is commented out by pre-fixing it with a “*”.
- Also, note that if your printer is doing auto-linefeeds, you should also
- edit option 1 to remove the line feed value (A) from the line to leave
- just the carriage return (D).
- 2.2
- • Star LC10 − (ref. the Help enquiry we had last month) David Francis
- says he uses the Epson FX driver successfully with this printer. He has
- the dip switches set as follows: 1-1 to 1-8 and 2-1 and 2-4 are all ON
- and 2-2 and 2-3 are OFF. The Archimedes is configured to IGNORE 0. With
- this setting, the printer prints out the test, including the graphics
- part. As set, it also prints under <ctrl-B> as well as with Artisan.
- He’s also tried to change the hex file to get it to work with quadruple
- size, but hasn’t succeeded yet.
- 2.2
- • Printer drivers − In designing my own printer drivers for both the
- Citizen 120D and Star LC-10 printers, I have not come across the problem
- noted, but mine were modified from the Epson LX printer driver. There
- was an item on the Letters section (page 128) of October’s issue of the
- Micro User referring to an apparently similar problem, which the writer
- cured by “commenting out” line &20 of the printer driver. I must admit
- that I cannot understand why this should have any effect, but in case it
- benefits other Archive readers, I detail below those elements of the
- printer drivers I have set up relating to form or line feeds (refer also
- to page 227 of the First Word Plus manual):
- 2.2
- 1D, A − Linefeed (N.B. carriage return & linefeed)
- 2.2
- 1E, C − Formfeed (N.B. &C = 12 as mentioned in the article)
- 2.2
- 1F, 12 − Horizontal initialisation (N.B. appears to cancel condensed)
- 2.2
- 20, 1B, 52, 0 − Vertical initialisation (N.B. appears to select USA
- characters)
- 2.2
- A further possible cause of problems may be to do with the printer’s dip
- switches, on page 218 of the First Word Plus manual it does state that:
- 2.2
- Skip over perforation must be DISABLED and Auto linefeed must be
- DISABLED
- 2.2
- • Printer Drivers with extended characters − Ted Peat has sent in
- various bits for FWP which we’ve put on the program disc.
- 2.2
- The printer drivers were written to permit both the Panasonic KXP-1081
- and the Diablo-ecs printer to access the same set of extended characters
- (those with codes from 160 to 255). The character set of the Archimedes
- is also modified to suit.
- 2.2
- The Diablo-ecs printers use a daisy wheel with a double row of charac
- ters, giving 192 in all. The usual ASCII set is supplemented by
- characters with codes >128. The description given here applies to the
- ‘scientific’ wheel containing Greek and mathematical symbols. The KXP-
- 1081 can be switched to emulate the IBM Graphics set, which also
- includes some Greek letters and some (but not all) useful mathematical
- symbols, again with codes >128. There are also some table-drawing
- symbols which are replicated several times over, and accented characters
- not needed for this application. Since up to 40 user-defined characters
- are possible, these redundant characters can be replaced. This then
- offers the opportunity to produce matched sets of symbols for the two
- printers and the Archimedes.
- 2.2
- I decided to include the complete Greek alphabet, which involves
- duplication of some upper case letters, and (for the KXP-1081 only), one
- set of table-drawing symbols. Two other symbols were added: an overline
- and backspace. Backspace is entered into the text as a large leftward
- pointing arrow-head (stored as character 161), but interpreted by the
- printer as a true backspace. One consequence of this, of course, is that
- text loses its WYSIWYG property. The advantage, however, is that both
- superscripts and subscripts can be attached to the same symbol, and the
- overline can be used to write a bar above a character. Since these
- peculiar needs are only likely within equations, the loss of on-screen
- text formatting is a minor irritation. Another complication was that the
- Diablo lost its left margin alignment after a backspace, when printing
- in the reverse direction. This option had to be switched off, slowing
- the printer down.
- 2.2
- There were two options for changing the Archi-medes character set. One
- was to change the Archi-medes font, to match that desired as far as
- possible, and then to redefine characters for the few changes needed.
- The most useful character set is that described as BFONT on p. 458 of
- the User Guide. To access this you need to *Configure Country Master.
- The second way: which is the one I adopted was to redefine all charac
- ters from 160 to 255. To do this I added a section to the 1st Word +
- loading program (Library.1stWord+ on the program disc).
- 2.2
- Once this was done, mapping the new character set to the Diablo’s set
- was easy: merely rewrite one of the provided Diablo Printer Drivers (in
- the hex dir-ectory) by changing the character translation table which
- forms the last part of the printer driver text.
- 2.2
- The KXP-1081 offered more complications. Firstly, it is necessary to
- download the redefined character set before loading 1stWordPlus. Another
- addition to the loader program, together with a user prompt, took care
- of this. Secondly, switching this printer to its IBM Graphics mode
- caused comp-lications with graphics printing: all the linefeeds became
- doubled! The printer driver codes were therefore expanded so that for
- each character the printer was switched into IBM Graphics set, the
- character printed, and then switched back to the Epson mode. This sends
- seven characters to the printer for every one actually printed. Since
- these are only occasional characters, the loss of efficiency is not
- important
- 2.2
- • Printer Driver Generator − John Smith has sent in, not another
- printer driver, but a printer driver generator program. He’s given it to
- be used as public domain software, so we have put it on Shareware disc
- number 2. For best results, copy the PDG program onto a copy of the 1st
- Word Plus Utilities disk before running it.
- 2.2
- • Tabs and underlining − This one is for dum-dums like me, writes
- David Crofts, who learn word-processing at the finger tip.
- 2.2
- Underlining − I spent many happy, but frustrating, hours fiddling with
- forms to try to sort out under-lining in intervening spaces, till I
- discovered that the hated TAB holds the key! (I expect this is obvious
- for lots of people, but hold on to the yawns.) I was used to VIEW where
- the TAB key worked “prop-erly”. (It inserted a TAB character, whatever
- that was, but it meant that a change in ruler meant a change in layout.)
- In FWP the Indent key does this job, except that it puts in a special
- stretch space which is fixed in spite of further ruler alterations.
- Because of this I had ignored TAB as useless.
- 2.2
- TAB inserts a set of normal spaces which have to be deleted individually
- − a nuisance if you are experi-menting with documents. But − you can
- underline TAB spaces, whereas you can’t underline Indents! And therein
- lies the hint!
- 2.2
- By all means use indents to facilitate experi-mentation but, in the end,
- TABs are preferable, where you wish subsequently to underline. If you
- have used Indents, then all is not lost, though fiddle is the name of
- the game. Turn off Insert, and turn on Underline (f2), then fill in the
- spaces with Fixed Space (f10). Then use the mouse or keyboard to
- underline the words.
- 2.2
- e.g. Say you have a form, the head of which is:
- 2.2
- Name Address Telephone
- 2.2
- the above is the result using Indent, but using TAB you will achieve:
- 2.2
- NameÊÊÊÊÊÊAddressÊÊÊÊÊÊTelephoneÊÊÊÊÊ
- 2.2
- Placing a TAB at the appropriate point near the end of the ruler allows
- the line to be printed to the same length on each line.
- 2.2
- • InterWord to FWP via ArcWriter − This is how Ian Barnes achieves the
- transfer:
- 2.2
- 1. Transfer file from IW to AW_DOC directory
- 2.2
- 2. Run ArcWriter
- 2.2
- 3. Press <select> for filing menu
- 2.2
- 4. Highlight file x
- 2.2
- 5. Press <menu>, select import, flowing, return
- 2.2
- 6. Press <select> for filing menu
- 2.2
- 7. Press <menu> and select export plus new name
- 2.2
- 8. Transfer file to 1WP.doc directory
- 2.2
- 9. Run 1WP and open file
- 2.2
- 10. Select WPmode from edit menu
- 2.2
- 11. Tidy up text by deleting control characters, changing any odd
- letters and inserting returns at line ends to leave a presentable result
- 2.2
- • Files from ArcWriter − The article by Brian Carroll in July’s issue
- of Archive under the heading of “First Word Plus Notes” (pages 21-23)
- was very useful together with the program ConvertWP (also on that
- month’s Magazine disc). Although designed to convert Wordwise Plus
- files, the program works quite well with ArcWriter as well. Briefly the
- procedure to convert ArcWriter files into First Word Plus is as follows:
- 2.2
- 1. From the ‘Filing’ menu in ArcWriter select the ‘Export’ option to
- save the file (e.g. under the name “testARC”) and then exit from
- ArcWriter.
- 2.2
- 2. Load the ConvertWP program and enter the appropriate Source
- (“testARC”) and Destination (e.g. “test1WP”) filenames.
- 2.2
- 3. Load First Word Plus and then the converted file (“test1WP”).
- 2.2
- 4. Select ‘WPmode on’ from the Edit menu.
- 2.2
- 5. Reformat the whole text by using the Style menu to ‘Reformat’ the
- ‘Whole document’.
- 2.2
- Odd words may sometimes get missed out of the converted text, possibly
- due to the fact that this data was preceded by “tabs” in ArcWriter.
- 2.2
-